// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "Engine/EngineTypes.h"
#include "HotPakToolType.generated.h"




/**
 *
 */
UCLASS()
class UHotPakToolType : public UObject
{
	GENERATED_BODY()

};


/** Singleton wrapper to allow for using the setting structure in SSettingsView */
UCLASS(config = Game)
class UCookAdvancedSettings : public UObject
{
	GENERATED_BODY()

public:



	UPROPERTY(config, EditAnywhere, Category = AdvancedAseeting, meta = (DisplayName = "Create Iterate cooked packages"))
		bool bCookIterate;

	/**
     * Cook all things in the project content directory
     */
	UPROPERTY(config, EditAnywhere, Category = AdvancedAseeting, meta = (DisplayName = "Cook everything in the project content directory (ignore list of maps below)"))
		bool bCookAll;

	/**
	 * Create compressed cooked packages (decreased deployment size)
	 */
	UPROPERTY(config, EditAnywhere, Category = AdvancedAseeting, meta = (DisplayName = "Create compressed cooked packages"))
		bool bCompressed;


	UPROPERTY(config, EditAnywhere, Category = AdvancedAseeting, meta = (DisplayName = "Create UnVersioned cooked packages"))
		bool bUnVersioned;


	UPROPERTY(config, EditAnywhere, Category = AdvancedAseeting)
		FDirectoryPath CookOutputDirectory;

	//UPROPERTY(config, EditAnywhere, Category = AdvancedAseeting)
		//FString AdvancedOptions;



#if 0

	/**
 * Cook only maps (this only affects the cookall flag)
 */
	UPROPERTY(config, EditAnywhere, Category = AdvancedAseeting, AdvancedDisplay, meta = (DisplayName = "Cook only maps (this only affects cookall)"))
		bool bCookMapsOnly;


	/**
	 * List of maps to include when no other map list is specified on commandline
	 */
	UPROPERTY(config, EditAnywhere, Category = AdvancedAseeting, AdvancedDisplay, meta = (DisplayName = "List of maps to include in a packaged build", RelativeToGameContentDir, LongPackageName))
		TArray<FFilePath> MapsToCook;

	/**
	 * Directories containing .uasset files that should always be cooked regardless of whether they're referenced by anything in your project
	 * These paths are stored relative to the project root so they can start with /game, /engine, or /pluginname
	 */
	UPROPERTY(config, EditAnywhere, Category = AdvancedAseeting, AdvancedDisplay, meta = (DisplayName = "Additional Asset Directories to Cook", LongPackageName))
		TArray<FDirectoryPath> DirectoriesToAlwaysCook;

	/**
	 * Directories containing .uasset files that should never be cooked even if they are referenced by your project
	 * These paths are stored relative to the project root so they can start with /game, /engine, or /pluginname
	 */
	UPROPERTY(config, EditAnywhere, Category = AdvancedAseeting, AdvancedDisplay, meta = (DisplayName = "Directories to never cook", LongPackageName))
		TArray<FDirectoryPath> DirectoriesToNeverCook;
#endif




};
